// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "net/tools/quic/quic_epoll_connection_helper.h"

#include <errno.h>
#include <sys/socket.h>

#include "base/logging.h"
#include "base/stl_util.h"
#include "net/base/ip_endpoint.h"
#include "net/quic/crypto/quic_random.h"
#include "net/tools/epoll_server/epoll_server.h"
#include "net/tools/quic/quic_socket_utils.h"

namespace net {

QuicEpollConnectionHelper::QuicEpollConnectionHelper(EpollServer* epoll_server,
    QuicAllocator type)
    : clock_(epoll_server)
    , random_generator_(QuicRandom::GetInstance())
    , allocator_type_(type)
{
}

QuicEpollConnectionHelper::~QuicEpollConnectionHelper() { }

const QuicClock* QuicEpollConnectionHelper::GetClock() const
{
    return &clock_;
}

QuicRandom* QuicEpollConnectionHelper::GetRandomGenerator()
{
    return random_generator_;
}

QuicBufferAllocator* QuicEpollConnectionHelper::GetBufferAllocator()
{
    if (allocator_type_ == QuicAllocator::BUFFER_POOL) {
        return &buffer_allocator_;
    } else {
        DCHECK(allocator_type_ == QuicAllocator::SIMPLE);
        return &simple_buffer_allocator_;
    }
}

} // namespace net
